package Queue

type Node struct {
	X, Y int
}

type Queue struct {
	queue []Node
}

func New() *Queue {
	return &Queue{
		queue: make([]Node, 0),
	}
}

func (q *Queue) Push(v Node) {
	(*q).queue = append((*q).queue, v)
}

func (q *Queue) Pop() {
	(*q).queue = (*q).queue[1:]
}

func (q *Queue) Front() Node {
	return (*q).queue[0]
}

func (q *Queue) Empty() bool {
	if len((*q).queue) == 0 {
		return true
	}
	return false
}
